home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 2010 April
/
PCWorld0410.iso
/
pluginy Firefox
/
60
/
60.xpi
/
chrome
/
webdeveloper.jar
/
content
/
webdeveloper
/
dialogs
/
cookie.js
next >
Wrap
Text File
|
2009-06-30
|
6KB
|
156 lines
// Initializes the cookie dialog
function webdeveloper_initializeCookie()
{
var stringBundle = document.getElementById("webdeveloper-string-bundle");
// If the first argument equals add
if(window.arguments[0] == "add")
{
var url = Components.classes["@mozilla.org/network/standard-url;1"].createInstance(Components.interfaces.nsIURL);
var windowContent = window.opener.getBrowser();
document.title = stringBundle.getString("webdeveloper_addCookie");
url.spec = windowContent.browsers[windowContent.mTabBox.selectedIndex].contentDocument.documentURI;
document.getElementById("webdeveloper-cookie-expires").value = new Date().toUTCString();
document.getElementById("webdeveloper-cookie-host").value = url.host;
document.getElementById("webdeveloper-cookie-path").value = url.path;
}
else
{
document.title = stringBundle.getString("webdeveloper_editCookie");
document.getElementById("webdeveloper-cookie-name").value = window.arguments[1];
document.getElementById("webdeveloper-cookie-value").value = window.arguments[2];
document.getElementById("webdeveloper-cookie-host").value = window.arguments[3];
document.getElementById("webdeveloper-cookie-path").value = window.arguments[4];
// If the cookie is a session cookie
if(window.arguments[5] == stringBundle.getString("webdeveloper_viewCookieInformationSession"))
{
document.getElementById("webdeveloper-cookie-expires").disabled = true;
document.getElementById("webdeveloper-cookie-session").checked = true;
}
else
{
document.getElementById("webdeveloper-cookie-expires").value = window.arguments[5];
}
// If the cookie is secure
if(window.arguments[6] == "true")
{
document.getElementById("webdeveloper-cookie-secure").checked = true;
}
}
}
// Saves the cookie
function webdeveloper_saveCookie()
{
var host = document.getElementById("webdeveloper-cookie-host").value.trim();
var errors = "";
var expires = document.getElementById("webdeveloper-cookie-expires").value.trim();
var expiresDate = new Date(expires);
var name = document.getElementById("webdeveloper-cookie-name").value.trim();
var path = document.getElementById("webdeveloper-cookie-path").value.trim();
var stringBundle = document.getElementById("webdeveloper-string-bundle");
// If the name is empty
if(!name)
{
errors += stringBundle.getString("webdeveloper_emptyName") + "\n";
}
// If the host is empty
if(!host)
{
errors += stringBundle.getString("webdeveloper_emptyHost") + "\n";
}
// If the path is empty
if(!path)
{
errors += stringBundle.getString("webdeveloper_emptyPath") + "\n";
}
// If this is not a session cookie
if(!document.getElementById("webdeveloper-cookie-session").checked)
{
// If the expires is empty
if(!expires)
{
errors += stringBundle.getString("webdeveloper_emptyExpires") + "\n";
}
else if(expiresDate && expiresDate == "Invalid Date")
{
errors += stringBundle.getString("webdeveloper_invalidExpires") + "\n";
}
}
// If there are errors
if(errors)
{
webdeveloper_error(errors.trim());
return false;
}
else
{
var cookie = name + "=" + document.getElementById("webdeveloper-cookie-value").value.trim() + ";";
var cookieService = Components.classes["@mozilla.org/cookieService;1"].getService().QueryInterface(Components.interfaces.nsICookieService);
var scheme = "http://";
var secure = document.getElementById("webdeveloper-cookie-secure").checked;
var session = document.getElementById("webdeveloper-cookie-session").checked;
var uri = null;
// If the first argument equals edit
if(window.arguments[0] == "edit")
{
Components.classes["@mozilla.org/cookiemanager;1"].getService(Components.interfaces.nsICookieManager).remove(window.arguments[3], window.arguments[1], window.arguments[4], false);
}
// If the host is a domain
if(host.charAt(0) == ".")
{
cookie += "domain=" + host + ";";
}
cookie += "path=" + path + ";";
// If this is not a session cookie
if(!session)
{
cookie += "expires=" + expiresDate + ";";
}
// If the cookie is secure
if(secure)
{
cookie += "secure;";
scheme = "https://";
}
uri = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService).newURI(scheme + host + path, null, null);
cookieService.setCookieString(uri, null, cookie, null);
}
return true;
}
// Updates the expiry status
function webdeveloper_updateExpiryStatus()
{
var disabled = false;
var expires = new Date();
// If session cookie is checked
if(document.getElementById("webdeveloper-cookie-session").checked)
{
disabled = true;
expires = "";
}
document.getElementById("webdeveloper-cookie-expires").disabled = disabled;
document.getElementById("webdeveloper-cookie-expires").value = expires;
}